package com.tdam2014.grupo11;

import java.util.ArrayList;

import org.utnrepasa.net.principal.ControladorCliente;
import org.utnrepasa.net.util.Course;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class MultijugadorCrearPartida extends Activity {

	private Button btnCrearPartida;
	private Spinner spnCantidadRondas;
	private ListView lstCrearPartida;

	private ControladorCliente controlador;
	private AdapterListaCrearPartida adapterCrearPartida;
	private ArrayAdapter<Integer> adapterCantidadRondas;

	public static final int PREGUNTAS_POR_RONDA = 5;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_multijugador_crear_partida);

		try {
			controlador = ControladorCliente.getInstancia(this);
			controlador.solicitarMaterias();
		} catch (Exception e) {
			Log.e(MultijugadorCrearPartida.class.getName(), e.getMessage());
			Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
		}

		spnCantidadRondas = (Spinner) findViewById(R.id.spnCantidadRondas);
		lstCrearPartida = (ListView) findViewById(R.id.lstCrearPartida);
		adapterCrearPartida = new AdapterListaCrearPartida(
				new ArrayList<Course>(), this);
		lstCrearPartida.setAdapter(adapterCrearPartida);
		adapterCantidadRondas = new ArrayAdapter<Integer>(this,
				android.R.layout.simple_list_item_1);
		spnCantidadRondas.setAdapter(adapterCantidadRondas);
		btnCrearPartida = (Button) findViewById(R.id.btnCrearPartidaMultijugador);
		btnCrearPartida.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				Log.i(MultijugadorCrearPartida.class.getName(),
						"Creando partida");
				ArrayList<Course> seleccionadas = adapterCrearPartida
						.getSeleccionados();
				Log.i(MultijugadorCrearPartida.class.getName(), seleccionadas
						+ "");

				if (seleccionadas.size() > 0) {
					controlador.setCreandoPartida(
							(Integer) spnCantidadRondas.getSelectedItem(),
							PREGUNTAS_POR_RONDA, seleccionadas);
					Intent intent = new Intent(MultijugadorCrearPartida.this,
							MultijugadorInvitar.class);
					startActivity(intent);
				} else {
					runOnUiThread(new Runnable() {

						@Override
						public void run() {
							Toast.makeText(MultijugadorCrearPartida.this,
									"Seleccione al menos una materia",
									Toast.LENGTH_LONG).show();
						}
					});
				}
			}
		});
	}

	public void recibirPartidas(ArrayList<Course> materias,
			final ArrayList<Integer> rondas) {
		try {
			adapterCrearPartida.setLista(materias);
			runOnUiThread(new Runnable() {

				@Override
				public void run() {
					adapterCantidadRondas.clear();
					adapterCantidadRondas.addAll(rondas);
					adapterCrearPartida.notifyDataSetChanged();
					adapterCantidadRondas.notifyDataSetChanged();
				}
			});
		} catch (Exception e) {
			Log.e(MultijugadorCrearPartida.class.getName(), e.getMessage());
			Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
		}
	}

}
